/*****************************************
 * POINT
 * A very simple point class.  You will most
 * likely want to use something more better
 * than this
 ****************************************/
#ifndef _POINT_H
#define _POINT_H

/*******************
 * POINT
 *******************/
class Point
{
public:
   // constructors
   Point()                : x(0.0 ),  y(0.0 ) {};
   Point(const Point &pt) : x(pt.x),  y(pt.y) {};
   Point(bool noError)    : x(0.0 ),  y(0.0 ) {};
   Point(float x, float y): x(x   ),  y(y  )  {};

   Point &operator = (const Point &pt)
   {
      this->x = pt.x;
      this->y = pt.y;
      return *this;
   };

   friend bool operator == (Point &lhs, Point &rhs)
   {
      return (lhs.getX() == rhs.getX() &&
              lhs.getY() == rhs.getY());
   };

   // getters
   float getX()    const { return x;     };
   float getY()    const { return y;     };
   float getXMax() const { return  200;  };
   float getYMax() const { return  200;  };
   float getXMin() const { return -200;  };
   float getYMin() const { return -200;  };

   // setters
   void setX(const float x)    { this->x = x;   };
   void setY(const float y)    { this->y = y;   };
   void addX(const float dx)   { this->x += dx; };
   void addY(const float dy)   { this->y += dy; };

protected:
   float x;
   float y;
};




#endif
